import * as maptalks from "maptalks";

class marker {
  /**
   * 创建 Marker
   * @param point
   * @param opt
   * @returns {*}
   */
  ctCreateMarker(point) {
    return new maptalks.Marker(point);
  }

  /**
   * 放到指定图层上
   * @param marker
   * @param layer
   */
  ctAddToLayer(marker, layer) {
    marker.addTo(layer)
  }

  /**
   *  设置 Marker 的展示样式
   * @param marker marker对象
   * @param symbol  展示
   */
  ctSetMarkerSymbol(marker, symbol) {
    marker.setSymbol(symbol);
  }

  /**
   * 设置 marker的标注 的 dom 元素
   * @param marker
   * @param htmlDom
   * @param isCustom 是否自定义 信息窗口
   */
  ctSetMarkerInfoWindow(marker, htmlDom, isCustom) {
    marker.setInfoWindow({
      title: '',
      autoPan: false,
      width: 400,
      custom: isCustom,
      autoOpenOn: 'click',
      autoCloseOn: 'click',
      content: htmlDom,
    });
  }

  /**
   * 显示 marker dom标注
   * @param marker
   */
  ctShowInfoWindow(marker) {
    marker.openInfoWindow()
  }

  /**
   * 隐藏 marker dom标注
   * @param marker
   */
  ctHideInfoWindow(marker) {
    marker.closeInfoWindow()
  }

  /**
   * 标注 事件 监听 （例如 click dblclick 等等）
   * @param marker
   * @param event
   * @param callback
   */
  ctAddListen(marker, event, callback) {
    marker.on(event, (param) => {
      callback(param)
    });
  }
}

export default new marker()
